1. Technical Field
The present invention relates to network data processing systems and, in particular, to the transfer control protocol. Still more particularly, the present invention provides a method, apparatus, and program for informing a client when a server is busy in the transfer control protocol.
2. Description of Related Art
Transmission Control Protocol/Internet Protocol (TCP/IP) is a suite of communications protocols developed to network heterogeneous systems. The TCP/IP suite of protocols has become the global standard for communications.
Transmission Control Protocol (TCP) provides transport functions, which ensures that the total amount of bytes sent is received correctly at the other end. User Datagram Protocol (UDP), which is part of the TCP/IP suite, is an alternate transport that does not guarantee delivery. UDP is widely used for real-time voice and video transmissions where erroneous packets are not retransmitted.
Currently, when a server application is busy, the server side TCP drops incoming connection attempts. These connection attempts are referred to as synchronization messages or SYN segments. The client side TCP may then retransmit the SYN at a later time. The limitation of the current method is that the client does not know whether the server dropped the connection request or whether the network dropped the packet. Thus, the client may continue to repeatedly retransmit the SYN until the server returns a synchronization acknowledgement or the client side TCP times out.
If the server is busy, then the server side TCP may be repeatedly interrupted by the SYN, causing the server to examine the listener's queue to determine whether to accept the SYN request. For example, the client may repeat the SYN after one second, after two seconds, after four seconds, etc. This may repeat for up to seventy-five seconds, or more, before the client times out. This causes the server to unnecessarily act on many SYN requests. Furthermore, the client side TCP may also repeatedly send the SYN to the server not knowing whether the packet is even arriving at the server.
Therefore, it would be advantageous to provide an improved mechanism for informing a client when a server is busy in the transfer control protocol.